import UIKit

extension QKC where AA == UIFloatRange {
}

extension QKC where AA == UIFloatRange {
	/// - Parameter encoder: The encoder to write data to.
    public func encode_qk_f(to encoder: Encoder) -> QKC<AA,YY,ZZ, Encoder>{
		 self +^ (try?self.value.encode(to:encoder)) +^ encoder
	}

}

@available(iOS 7.0, *)
extension QKC where AA :UIAttachmentBehavior {
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UIDynamicItem] >{
		 self +^ self.value.items
	}

    open func attachedBehaviorType_qk_g() -> QKC<AA,YY,ZZ, UIAttachmentBehavior.AttachmentType >{
		 self +^ self.value.attachedBehaviorType
	}

    open func anchorPoint_qk_s(_ anchorPoint:  CGPoint) -> QKC<AA,YY,ZZ, CGPoint>{
		return link(next: anchorPoint).then_QK { $0.value.anchorPoint = anchorPoint }
	}
    open func anchorPoint_qk_g() -> QKC<AA,YY,ZZ, CGPoint>{
		 self +^ self.value.anchorPoint
	}

    open func length_qk_s(_ length:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: length).then_QK { $0.value.length = length }
	}
    open func length_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.length
	}

		// 1: critical damping
    open func damping_qk_s(_ damping:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: damping).then_QK { $0.value.damping = damping }
	}
    open func damping_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.damping
	}

		// in Hertz
    open func frequency_qk_s(_ frequency:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: frequency).then_QK { $0.value.frequency = frequency }
	}
    open func frequency_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.frequency
	}

		// default is 0.0
    @available(iOS 9.0, *)
    open func frictionTorque_qk_s(_ frictionTorque:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: frictionTorque).then_QK { $0.value.frictionTorque = frictionTorque }
	}
    @available(iOS 9.0, *)
    open func frictionTorque_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.frictionTorque
	}

		// default is UIFloatRangeInfinite
    @available(iOS 9.0, *)
    open func attachmentRange_qk_s(_ attachmentRange:  UIFloatRange ) -> QKC<AA,YY,ZZ, UIFloatRange >{
		return link(next: attachmentRange).then_QK { $0.value.attachmentRange = attachmentRange }
	}
    @available(iOS 9.0, *)
    open func attachmentRange_qk_g() -> QKC<AA,YY,ZZ, UIFloatRange >{
		 self +^ self.value.attachmentRange
	}

}

